Computer arrangements, including microprocessors and digital signal processors, have been designed for a wide range of applications and have been used in virtually every industry. For a variety of reasons, many of these applications have been directed to processing video data and have demanded minimal levels of power consumption and compactness. Some applications have further demanded a high-speed computing engine that can perform effectively on a real-time or near real-time basis. Many of these video-processing applications have required a data-signal processing circuit that is capable of performing multiple functions at ever-increasing speeds.
Unfortunately, achieving high data-processing speeds and providing multiple functions are opposing tensions. For instance, general-purpose video signal processing, which typically includes finite-impulse-response (FIR) or infinite-impulse-response (IIR) filtering, is relatively slow when compared to specialized video-data filter processing such as compressing and decompressing video data in real time. Because the computational architecture used in connection with specialized video-data filter processing is typically optimized to keep up with the real-time speeds of the video data, specialized video-data filter processing is typically not very efficient at performing the variety of tasks associated with general-purpose video signal processing.
Useful in some applications is a type of specialized video-data filter known as a “polyphase” filter. In video-processing applications, a polyphase filter is sometimes used to resize pixels by manipulating data stored to represent the horizontal and vertical lines used to refresh the display. In such applications, the ratio of the number of output pixels to the number of input pixels is defined as a zoom-factor; whereas, for general purpose filtering, the number of output pixels equals the number of input pixels. The resizing operation is also known as expansion or up-sampling when the zoom factor is greater than one; otherwise, resizing operation is typically known as compression or down-sampling. Normally, for resizing a picture (scaling up or down) to provide a fixed zoom, the polyphase filter is implemented with its coefficients defined as a function of the position or phase of the pixel that is being processed. For resizing in high-precision video applications, the polyphase filtering is implemented with a more unique architecture to accommodate the math required to achieve the precision; typically, this type of polyphase filtering is implemented in a form referred to as “polyphase-transposed” filtering. For the more typical video applications, the polyphase filtering is implemented as a polyphase direct filter using a computational architecture that is more common with general purpose filtering such as FIR filtering. Because of the requisite math respectively associated with general purpose filters and certain special-purpose filters such as in polyphase transposed filtering, architectural incompatibilities have resulted in these general purpose filters being designed separately from such special purpose filters. For further details and an example implementation of such a polyphase filter, reference made be made to U.S. Pat. No. 5,892,695, entitled, “Sample Rate Conversion,” Van Dalfsen et al, assigned to the instant assignee and incorporated herein by reference in its entirety.
In each of the above video-processing applications, there is a significant cost in connection with designing, manufacturing and maintaining the integrated circuits used to provide such functionality. In each such application where the specified filtering modes are architecturally incompatible, the costs associated with the additional architectures are significant. Accordingly, there is a well-recognized need to develop a relatively compact video-processing filter architecture that accommodates these multiple filtering modes without a significant loss in data-processing throughput.